package com.edu.system.service;

import com.edu.system.domain.Student;
import com.edu.system.domain.dto.BalanceStatDTO;
import java.util.List;

import com.edu.system.domain.TCard;

/**
 * 卡管理Service接口
 *
 * @author xxxx
 * @date 2023-12-17
 */
public interface ITCardService {
    /**
     * 查询卡管理
     *
     * @param id 卡管理主键
     * @return 卡管理
     */
    public TCard selectTCardById(Long id);

    /**
     * 查询卡管理列表
     *
     * @param tCard 卡管理
     * @return 卡管理集合
     */
    public List<TCard> selectTCardList(TCard tCard);

    public List<TCard> selectCardByIds(List<Long> ids);

    /**
     * 新增卡管理
     *
     * @param tCard 卡管理
     * @return 结果
     */
    public int insertTCard(TCard tCard);

    /**
     * 修改卡管理
     *
     * @param tCard 卡管理
     * @return 结果
     */
    public int updateTCard(TCard tCard);

    /**
     * 批量删除卡管理
     *
     * @param ids 需要删除的卡管理主键集合
     * @return 结果
     */
    public int deleteTCardByIds(Long[] ids);

    /**
     * 删除卡管理信息
     *
     * @param id 卡管理主键
     * @return 结果
     */
    public int deleteTCardById(Long id);

    public String importCard(List<TCard> list, Integer cardType);

    public TCard checkIsExist(String owner, Long classId);

    public TCard checkIsExist(String cardNo, String owner);

    public TCard findCardByNo(String cardNo);

    public TCard findCardByOwnerId(String ownerId);

    public Long replaceCard(String newCardNo, Long oldCardId);


    /**
     * 消费
     * @param cardNo
     * @param amount
     * @return
     */
    public TCard charge(String cardNo,Float amount);

    /**
     * 批量充值
     * @param cardNos
     * @param amount
     * @return
     */
    public int recharge(List<String> cardNos,Float amount);

    public BalanceStatDTO cntBalance(Integer balance);

}
